In this “application note” explains how to control the Danaher drives connected with a MicroQMove device using the CANOpen bus. In this way the user can figure out how to navigate at the time of construction of a communication network. The MicroQMove device in this example is an R502BF.
The 502BF product is a programmable system consists of a main processing unit (CPU) and a series of cards that manage local inputs and outputs internally connected via a data bus. On this internal bus identifies a number (depends to the model) of card slots and numbered starting to 2. For example the 502BF product allows you to install up to 5 cards, then the slot numbering on the bus will be from 2 to 6.
When you create a CANOpen network, the number of slots is extended up to 12 thus making available additional I/O present on devices that implement the DS-401 profiles of communication “Communication profile for generic I/O modules” and DS-402 “Device Profile Drives and Motion Control”. The CANOpen network only supports a configuration with devices that belong to the same profile, so it is not possible to have generic I/O modules with the same network drives. Also when you use a network configured for devices by DS-402 type (driver), These must all be of the same manufacturer. In this document, we'll discuss connecting and setting up a network in which all devices are drives Danaher.
The product is equipped with a CANbus port that implements a CANOpen standard communication protocol. This Protocol is used to implement a process communication We can define simplistically a “internal bus expansion”. This means that for all intents are used process data communication to present to the system I/O information coming from the CANOpen bus and this information is addressed as if they belonged to additional card slots present “virtually” on the position from 7 to 12. This solution makes it easy and intuitive CANOpen network configuration.
The CANOpen is a communication protocol based on CAN serial bus. The CANOpen expect the hardware of a device connected has a CAN receiver (CAN-transceiver) and a CAN controller as established by the ISO 11898. The CANOpen communication profile, CiA DS-301, implements both cyclic communications that event-oriented communication, thus reducing the load on the bus while maintaining low reaction times. You can achieve high performance in terms of the amount of Exchange data even at relatively low speeds, reducing problems related to EMC rules and wiring costs. The physical medium used by the CANOpen Protocol is a line bus differential pair with common return complies with ISO 11898. The bus length is limited by the speed of communication as follows:
| Bitrate | Maximum bus length |
|---|---|
| 1 Mbps | 25 m |
| 500 kbps | 100 m |
| 250 kbps | 250 m |
| 125 kbps | 1000 m |
Here are the steps to the creation and configuration of a network:
;------------------------------ ; Internal device declaration ;------------------------------ INTDEVICE FieldB1 CANOPEN 0004 500 0
In the above example was declared a device with sample time 4ms and 500kbps comunication rate
;---------------------- ; Qmove Bus declaration ;---------------------- BUS 1 502BF 99 2 . . 3 . . 4 . . 5 . . 6 . . 7 C402A .
In the example we have chosen the speed 500 kbps. There is also another way of setting the rate to be used when you think would be necessary to change the speed even without intervention in the Qcl application. In this case you set zero in the speed during the declaration of the device and then choose the speed through the dip-switches:
| Dip 5 | Dip 7 | Bitrate |
|---|---|---|
| off | off | 125 kbps |
| off | on | 250 kbps |
| on | off | 500 kbps |
| on | on | 1 Mbps |
* use the software provided by the manufacturer of the drive for setting parameters. Open the Basic setting by clicking on the button:
For correctly manage from the QEM device, the Danaher driver must be properly configured. Here are the steps to do this, This refers to the software that comes with the drive:
After setting the parameters on driving we can execute the axis calibration, which you should perform in two stages:
Per tarare il loop di velocità è necessario: impostare sulla videata OPMODE 0 = Velocità Digitale. Aprire la videata VELOCITA e impostare le rampe di accelerazione e decelerazione ad un valore di circa 100ms (a seconda del carico collegato al motore). Far eseguire dei movimenti al motore usando dalla videata OSCILLOSCOPIO le funzioni Velocità F6 o F8 cliccando sul pulsante Avvio nel riquadro Servizio.
A questo punto cliccare sul pulsante Avvio Oscilloscopio che mostrerà il posizionamento del motore. Agire sui parametri della videata VELOCITA:
Aumentare il guadagno Kp fino a quando il motore comincia a vibrare, quindi ridurlo ad un valore in cui è stabile (un valore troppo basso equivale ad una risposta lenta del motore, mentre un valore troppo alto rende il motore troppo brusco ed oscillante). Il parametro Tn, in millisecondi, rappresenta il tempo di azione integrale del guadagno proporzionale di velocità: questo valore cresce con l'aumentare della taglia del motore e con l'aumentare dell'inerzia del carico. Valori troppo bassi di Tn con grosse inerzie comportano movimenti bruschi del motore e forti overshoot, mentre valori troppo alti comportano una risposta lenta del motore. Se modificando Kp e Tn non si ottiene una buona taratura si può usare il parametro PID-T2: un filtro passa basso sul guadagno proporzionale di velocità: un valore troppo basso o troppo alto rende la risposta dell'asse rispettivamente troppo rapida o troppo lenta.
Al termine della taratura dell'anello di velocità si passa alla taratura dell'anello di posizione, impostando i parametri Rampa di Accelerazione e Decelerazione a 1ms e OPMode al valore 5)Posiz. Movim.Est. per lavorare in modalità CanOpen con il 502BF.
Aprire in Qview l'applicativo DEMO_CANOPEN_DRIVE. Questo applicativo controlla un drive con indirizzo nr.1 con rate 500 kbps. Scaricare l'applicativo e dare RUN alla CPU.
Impostando la variabile gbtest = 3, l'azionamento inizia a fare una serie di movimenti tra due quote. Per modificare i tempi di accelerazione fare riferimento al device an01 (EANPOS) mentre per le quote di posizionamento fare riferimento al codice nella unità MOVEMENT.
Nota:
Se la direzione di movimento non è corretta agire sul comando ASCII DIR dell'azionamento. Non agire sul comando CNTREV del device che deve rimanere nello stato di default (st_cntrev = 0).
Aprire la videata Posizione e andare a modificare i parametri dell'anello di posizione Kv (guadagno proporzionale di posizione) e Ff (fattore di Feed Forward) in modo da verificare il comportamento dell'asse.
Il fattore di Feed Forward determina la percentuale con cui il fattore di velocità viene considerato nel calcolo della retroazione di posizione.
Anche in questo caso è possibile verificare i valori di errore con lo strumento Oscilloscopio.
Queste indicazioni per la taratura devono essere intese solo come traccia. Fare riferimento alla documentazione ufficiale dell'azionamento per indicazioni più precise.
Questo applicativo di esempio implementa tutto il codice necessario per la gestione di un drive comandato via CANOpen. Può essere utilizzato come codice di esempio o come punto di partenza per sviluppare la propria applicazione.
L'applicativo è composto da due unità: CANOPEN e MOVEMENT.
MOVEMENT è una semplice unità che implementa una sequenza di movimenti. La variabile gbtest a seconda del valore può implementare le seguenti sequenze:
0 = nessuna operazione
1 = movimento continuo tra due quote (0 e 50000). Verso quota zero movimento normale, verso quota 50000 movimento in limitazione di coppia e con errore inseguimento disabilitato
2 = avvio procedura di homing
3 = movimento continuo tra due quote (0 e 10000)
CANOPEN è destinato alla gestione della rete CANOpen. È l'unica unità che fa uso del device; essa esegue le seguenti macro operazioni:
La parte gestione operazioni continue è implementata nella procedura Qcl chiamata DR_GET_VALUES, è utilizzata per leggere alcuni valori dal drive attraverso degli SDO. Questi valori vengono messi su delle variabili e resi disponibili per le altre unità. Sono sempre operazioni di lettura. Più variabili vengono lette e più bassa sarà la frequenza di aggiornamento del dato.
La parte gestione operazioni a richiesta è implementata nella procedura QCL DR_REQUEST, è utilizzata per tutte quelle operazioni che devono essere eseguite ad evento (per esempio una scrittura di un parametro). L'evento deve essere scatenato in un'altra unità.
Per scatenare l'evento bisogna impostare un valore nella variabile gbDrRequest, per attendere la conclusione dell'operazione bisogna attendere che lo stesso valore venga impostato nella variabile gbDrAnswer. Ogni operazione può avere una o più variabili di scambio valore. Vediamo una tabella riassuntiva delle operazioni ora implementate.
| Operazione | Variabili Qcl | Descrizioni |
|---|---|---|
| imposta l'azionamento in trajectory mode | nessuna | questa richiesta imposta l'azionamento in trajectory mode. Da questo momento in poi la posizione è controllata dallo strumento 502BF. |
| avvia procedura di homing | variabili di impostazione: gbHomType, gbHomDir, glHomVel, glHomAcc, glHomDec, glHomOff variabili di stato: gfHomActive, gfHomOk, gfHomError | questa richiesta avvia una procedura di homing. Prima di avviare questa richiesta impostare le variabili corrispondenti. Durante la procedura la variabile di stato gfHomActive viene posta a 1. Al termine della procedura se gfHomOk viene posta a 1 la procedura si è conclusa correttamente, se invece gfHomError viene posta ad 1 allora la procedura si è conclusa in modo errato. La procedura utilizza l'homing del drive implementato dal parametro ASCII NREF. Fare riferimento alla descrizione di questo comando. |
| imposta limite di corrente motore | glCurrLim | questa procedura imposta il limite massimo di corrente nel motore al valore contenuto nella variabile glCurrLim |
| imposta limite di errore inseguimento | glMaxFErr | questa procedura imposta il limite massimo di errore inseguimento con il valore contenuto nella variabile glMaxFErr |
L'azionamento viene comandato mediante l'invio via CANOpen delle informazioni di posizione. Questo significa che all'azionamento è delegato il compito di realizzare la regolazione di corrente, velocità e posizione.
Le informazioni che transitano via CANOpen sono sempre in forma relativa e non assoluta. Questo significa che l'azionamento muove il motore senza conoscere la posizione assoluta e quindi senza avere dei limiti software (che sono invece implementati nel device del prodotto 502BF).
La posizione reale del motore viene letta via CANOpen e resa disponibile nei parametri encoder e posit del device stesso. La risoluzione di questa informazione dipende dal trasduttore utilizzato nell'azionamento. Se si utilizza un resolver con il parametro PRBASE al valore 16, ad ogni giro del motore verrà contato un valore pari a 65536. In pratica però per default esiste un fattore di divisione pari a 4 tra l'informazione fornita dal drive e quella letta dal 502BF. Questo fattore è programmabile attraverso un comando QDO del device CANOPEN. Il fattore di divisione è stato inserito per evitare effetti di overflow durante la lettura. È infatti necessario (come per tutti gli altri device interni) che ad ogni tempo di campionamento del device la posizione non sia modificata per un valore maggiore di 2^15 (32768) bit encoder.
E' importante per il corretto funzionamento che il tempo di campionamento del device CANOPEN coincida con tempo di campionamento di tutti i device che utilizzano questo bus di campo. A causa di restrizioni nell'azionamento Danaher il tempo di campionamento deve essere pari ad uno dei seguenti valori: 2,3,4,5,8,10,20 msec.
Gli errori di comunicazione possono essere monitorati con i parametri errflags, maxrxerr, maxtxerr, busload e maxtraffic del device CANOPEN.
I parametri busload e maxtraffic devono essere utilizzati per verificare l'effettivo utilizzo del bus. Il valore non deve mai superare 80.0%. Questo dato determina anche il numero di azionamenti che è possibile utilizzare. L'utilizzo del bus dipende dai seguenti fattori:
| Fattore | Descrizione |
|---|---|
| Tempo di campionamento device | ad ogni tempo di campionamento vengono inviate le informazioni di movimento e viene letta la posizione effettiva del motore |
| velocità CAN bus | la velocità definisce la durata del messaggio in modo inversamente proporzionale |
| numero azionamenti | più azionamenti vi sono e più messaggi devono essere inviati nel tempo di campionamento |
| utilizzo di SDO | l'utilizzo di SDO prevede l'invio di messaggi ulteriori fino ad un massimo di un messaggio per ogni tempo di campionamento |
| errori di comunicazione | gli errori di comunicazione alterano il contenuto di un messaggio che verrà immediatamente ritrasmesso aumentando il traffico |